package agentes;

import java.awt.Color;
import java.awt.Frame;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JTextPane;

public class DiagramaSequenciaDicas {
	
	ArrayList<JTextField> opcao = new ArrayList<JTextField>();
	ArrayList<JPanel> panel = new ArrayList<JPanel>();

	boolean haErro = false;
	boolean exibiuDica1 = false;
	boolean exibiuDica2 = false;
	boolean exibiuDica3 = false;
	boolean exibiuDica4 = false;
	

	public ArrayList<JTextField> getOpcao() {
		return opcao;
	}

	public void setOpcao(ArrayList<JTextField> opcao) {
		this.opcao = opcao;
	}

	public ArrayList<JPanel> getPanel() {
		return panel;
	}

	public void setPanel(ArrayList<JPanel> panel) {
		this.panel = panel;
	}

	public boolean isExibiuDica1() {
		return exibiuDica1;
	}

	public void setExibiuDica1(boolean exibiuDica1) {
		this.exibiuDica1 = exibiuDica1;
	}

	public boolean isExibiuDica2() {
		return exibiuDica2;
	}

	public void setExibiuDica2(boolean exibiuDica2) {
		this.exibiuDica2 = exibiuDica2;
	}

	public boolean isExibiuDica3() {
		return exibiuDica3;
	}

	public void setExibiuDica3(boolean exibiuDica3) {
		this.exibiuDica3 = exibiuDica3;
	}

	public boolean isExibiuDica4() {
		return exibiuDica4;
	}

	public void setExibiuDica4(boolean exibiuDica4) {
		this.exibiuDica4 = exibiuDica4;
	}

	public Frame getFrame() {
		return frame;
	}

	public void setFrame(Frame frame) {
		this.frame = frame;
	}

	public JTextPane getDica() {
		return dica;
	}

	JTextPane dica;

	JTextField resposta;
	
	
	Frame frame = new JFrame();
	
	public DiagramaSequenciaDicas(){
		
	}
	
	public void setPanel(JPanel j, int i){
		panel.add(i, j);
	}
	
	
	public void setResposta(JTextField resp){
		resposta = resp;
	}
		
	public void setOpcao(JTextField op, int i){
		opcao.add(i, op);
	}
	
	public void setDica(JTextPane t) {
		dica = t;
	}
	
	public JTextField getOpcao(int i){
		return opcao.get(i);
	}
		
	public JTextField getResposta(){
		return resposta;
	}
	
	public JPanel getPanel(int i){
		return panel.get(i);
	}
		
	public int getValueOpcao(int i){
		return Integer.parseInt(opcao.get(i).getText());
	}
		
	public int getValueResposta(){
		return Integer.parseInt(resposta.getText());
	}

	public void setAtencaoOpcao(int i){
		opcao.get(i).setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.yellow), "!"));
	}
	
	public void setErrorOpcao(int i){
		opcao.get(i).setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.red), "Erro!"));
	}
		
	public void setErrorResposta(){
		resposta.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.red), "Erro!"));
	}
	
	public boolean isHaErro() {
		return haErro;
	}
	
	public void setHaErro(boolean haErro) {
		this.haErro = haErro;
	}

	public void setOkOpcao(int i ){
		opcao.get(i).setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.green), "Certo!"));
	}
	
	public void setOkResposta(){
		resposta.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.green), "Certo!"));
	}
	
	
	public void removeAlertOpcao(int i){
		opcao.get(i).setBorder(BorderFactory.createLineBorder(Color.black));
	}
	
	public void removeAlertResposta(){
		resposta.setBorder(BorderFactory.createLineBorder(Color.black));
		resposta.setText("");
	}
		
	public void mostrarAlerta(int tipo){
		
		
		switch(tipo){
			case 1:
				dica.setText(
						"<br>" +
						"Para começar, selecione uma das opções <br>"
						+ "para cada combo exibido ao lado <br>"
						+ "e perceba o que acontece<br><br>");
				break;
			case 2:
				dica.setText( 
						"<br>" +
						"Lembre-se: arranjos são agrupamentos nos quais<br> "+
						"a ordem dos seus elementos faz a diferença.<br><br>");				
				break;
			case 3:
				dica.setText(
						"<br>" +
						"Você está repetindo uma possibilidade.<br> " +
						"Tente selecionar outras opções." +		
						"<br><br>");
				break;
			case 4:
				dica.setText("<br>Parabéns!<br><br>" +
						"Você conclui o preenchimento do diagrama!<br>" +
						"Observe que gerou 12 diferentes possibilidades de formação do pódio.<br><br>" +
						"Resolva o próximo exercício: clique na aba '2-Princípio da Contagem' para compreender uma forma mais prática de calcular o <b>Arranjo</b>. ");
				break;
		}
	}
	
	
}
